Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Mysql - WHERE - via php feld überschreiben“

kleinercoop

einfach, coop

hallo...

ich bin im moment dabei ein kleines php script zu schreiben bzw bau ich mir das so zusammen...

Das ganze soll eine Tabelle anzeigen mit einem "Alten" Preis und rechts daneben soll ein Feld sein wo man einen möglichen neuen preis eingeben kann. Via inputt button gibt er den wert an eine datenbank.

// edit: Bild


das ganze klappt ganz gut...

nur entweder ändert er alle preise in der dynamischen tabelle oder nur einen und zwar dann den ID bezogenen.

ich würd daher gern wissen ob ich die id nicht auch irgendwie dynamsich schalten kann.


connect.php

<?php

$host = "localhost";
$user = "root";
$password = "";
$dbname = "test";
$tabelle ="geraeteliste";

$dbverbindung = mysql_connect ($host, $user, $password) or die("Verbindungsversuch fehlgeschlagen");
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

mysql_select_db($dbname, $dbverbindung) or die("Konnte die Datenbank nicht waehlen.");

$sql = "SELECT id, hersteller, bezeichnung, alterpreis, neuerpreis FROM geraeteliste";


$hersteller_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");


$anzahl = mysql_num_rows($hersteller_query);


echo "Anzahl der Datensaetze: $anzahl";

?>



Eintragen.php

<?php

include 'connect.php';

$hersteller = $_POST['hersteller'];
$bezeichnung = $_POST['bezeichnung'];
$alterpreis = $_POST['alterpreis'];
$neuerpreis = $_POST['neuerpreis'];

if (!empty($neuerpreis)) {


$aendern = "UPDATE `test`.`geraeteliste` SET `alterpreis` = '$neuerpreis' WHERE `geraeteliste`.`id` =1;";
$eintragen = mysql_query($aendern);

if($eintragen == true)
{
echo "Eintrag war erfolgreich";
}
else
{
echo "Fehler beim Speichern";
}

}

?>

// edit 2

Ich weiß das er hier bei ID "nur" ID 1 anspricht. und genau hier hab ich mein problem :(


ausgabe.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>

<?php

/* Datenbank connect */

include 'connect.php';

?>


<?php



while ($adr = mysql_fetch_array($hersteller_query)){

?>

<br /><br />

<table>

<tr>
<td>ID</td>
<td>Hersteller</td>
<td>Bezeichnung</td>
<td>Alter Preis</td>
<td>Neuer Preis</td>
<td>Eintragen</td>
</tr>

<tr>
<td><?php echo $adr['id']?></td>
<td><?php echo $adr['hersteller']?></td>

<td><?php echo $adr['bezeichnung']?></td>

<td><?php echo $adr['alterpreis']?></td>

<td><form action="eintragen.php" method="post"> <textarea name="neuerpreis" cols="5" rows="1" ></textarea> </td>

<td><input type="submit" value="Eintragen"/></form></td>

</tr>

</table>

<?php

}

?>


</body>
</html>

Datenbank
CREATE TABLE geraeteliste (
id INT NOT NULL auto_increment,
hersteller varchar(255) default NULL,
Bezeichnung varchar(255) default NULL,
Alterpreis varchar(255) default NULL,
Neuerpreis varchar(50) default NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1;


INSERT INTO geraeteliste (hersteller,Bezeichnung,Alterpreis,Neuerpreis) VALUES ('Nokia','NK6300','70');
 
Zuletzt bearbeitet:

GrafiKman

Aktives Mitglied

AW: Mysql - WHERE - via php feld überschreiben

ich würd daher gern wissen ob ich die id nicht auch irgendwie dynamsich schalten kann.

was meinst du mit Dynamisch schalten????

deine Problem vestehe ich nicht ganz, versuche mal bitte zu erklären was genau passieren soll.
 

kleinercoop

einfach, coop

AW: Mysql - WHERE - via php feld überschreiben

Die tabelle ist ja dynamisch...
also sie generiert sich ja aus den daten die in der datenbank stehen...

ich möchte jetzt wie oben im bild... den alten preis genau nur in "einer" zeile austauschen...

schreib ich in meinem script "id = 1" dann kannn ich in jedem feld ein preis eintragen und er ändert das nur dort...

ich will aber das der preis in der zeile geändert wird in der ich mich befinde... zb...



hier... die 545 werden aufgrund ( id = 1 ) in die erste zeile geschrieben.

nehme ich das
(WHERE `geraeteliste`.`id` =1;)
weg ändert er den preis von 1 überall auf 545.
 

GrafiKman

Aktives Mitglied

AW: Mysql - WHERE - via php feld überschreiben

dann gib doch dem input feld als namen die akteulle id mit in der es geändert werden soll und lese diese mit php aus

also
$id = $_POST['id'];
where id '$id'....
 

kleinercoop

einfach, coop

AW: Mysql - WHERE - via php feld überschreiben

dann gib doch dem input feld als namen die akteulle id mit in der es geändert werden soll und lese diese mit php aus

also
$id = $_POST['id'];
where id '$id'....


mh und da hab ich ja mein "denkproblem"

ich hab ja im script nur "ein" input feld...

ich krieg ja erst mehr sobald ich mehrere daten in meiner DB habe.

gebe ich dem input feld die id mit... ist es doch immer noch die selbe bei allen feldern ?
 

GrafiKman

Aktives Mitglied

AW: Mysql - WHERE - via php feld überschreiben

<td><form action="eintragen.php" method="post"> <textarea name="neuerpreis" cols="5" rows="1" id="id<?php echo $adr['id']; ?> "></textarea> </td>
 

kleinercoop

einfach, coop

AW: Mysql - WHERE - via php feld überschreiben

<td><form action="eintragen.php" method="post"> <textarea name="neuerpreis" cols="5" rows="1" id="id<?php echo $adr['id']; ?> "></textarea> </td>


okey danke ;)

where id '$id'....


$aendern = "UPDATE `test`.`geraeteliste` SET `alterpreis` = '$neuerpreis' WHERE `geraeteliste`.`id` = $id;";

das klappt aber nicht ;/

oder nur

$aendern = "UPDATE `test`.`geraeteliste` SET `alterpreis` = '$neuerpreis' WHERE `geraeteliste`.`id;";

-> hier ändert der auch wieder alle werte.
 

Duddle

Posting-Frequenz: 14µHz

AW: Mysql - WHERE - via php feld überschreiben

Mach doch in dein <form> noch ein
PHP:
<input type="hidden" name="id" value="<?php echo $adr['id']; ?>" />
(Edit: also anstatt dem Eintrag im <textarea>)

Das ist quasi ähnlich dem Vorschlag von GrafiKman, aber erstens ist ein hidden-Feld meiner Meinung nach semantisch schicker, zweitens kannst du direkt drauf zugreifen.

Der übergebene Wert steckt dann weiterhin in $_POST['id'], daher sollte das funktionieren.


Duddle
 

kleinercoop

einfach, coop

AW: Mysql - WHERE - via php feld überschreiben

Mach doch in dein <form> noch ein
PHP:
<input type="hidden" name="id" value="<?php echo $adr['id']; ?>" />
(Edit: also anstatt dem Eintrag im <textarea>)

Das ist quasi ähnlich dem Vorschlag von GrafiKman, aber erstens ist ein hidden-Feld meiner Meinung nach semantisch schicker, zweitens kannst du direkt drauf zugreifen.

Der übergebene Wert steckt dann weiterhin in $_POST['id'], daher sollte das funktionieren.


Duddle

danke... aber durch hidden ist der button doch nun weg wo ich drauf drücken soll Oo ;) ?

lass ich ihn auf submit und klick drauf... ändert er global oder immer noch "id - bezogen" :(

oder wie muss ich das in der zeile

PHP:
$aendern = "UPDATE `test`.`geraeteliste` SET `alterpreis` =  '$neuerpreis';";
$eintragen = mysql_query($aendern);

ändern ?
 

Duddle

Posting-Frequenz: 14µHz

AW: Mysql - WHERE - via php feld überschreiben

Der <input type="hidden"...> soll zusätzlich noch rein.

Das UPDATE-Query musst du natürlich noch mit dem WHERE ausstatten, also wie oben schon beschrieben:

PHP:
$id = $_POST['id'];
$aendern = "UPDATE `test`.`geraeteliste` SET `alterpreis` =  '$neuerpreis' WHERE `geraeteliste`.`id` = $id";
$eintragen = mysql_query($aendern);

Man beachte, dass diesem Code ein Abfangen von SQL Injections fehlt. Das solltest du sofort nachholen (siehe Google), sobald das Updaten an sich funktioniert.


Duddle
 

kleinercoop

einfach, coop

AW: Mysql - WHERE - via php feld überschreiben

Der <input type="hidden"...> soll zusätzlich noch rein.

Das UPDATE-Query musst du natürlich noch mit dem WHERE ausstatten, also wie oben schon beschrieben:

PHP:
$id = $_POST['id'];
$aendern = "UPDATE `test`.`geraeteliste` SET `alterpreis` =  '$neuerpreis' WHERE `geraeteliste`.`id` = $id";
$eintragen = mysql_query($aendern);

Man beachte, dass diesem Code ein Abfangen von SQL Injections fehlt. Das solltest du sofort nachholen (siehe Google), sobald das Updaten an sich funktioniert.


Duddle

ahhhhhh dank dir / euch!! ;)

SQL Injections google ich mal! nochmal danke!!!!!!

lg

markus

_____ EDIT ____

hmpf mist.

ich hatte vor meiner datenbank aktion... einige varriabeln festgelegt um mit denen zu rechnen, leider funktioniert das nicht mehr so, was ich mir gedacht hatte.



index.php

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<title>VVL</title>
</head>
<?php
	
	include 'var.php';
	
	
$hersteller = $_POST['hersteller'];
$bezeichnung = $_POST['bezeichnung'];
$alterpreis = $_POST['alterpreis'];
$neuerpreis = $_POST['neuerpreis'];
?>


<body>

<div id="wrapper">

<div id="box">
<h1> Vertragsverlängerung </h1>
<form action="calc.php" method="post">
TN-Kategorie<br />
<select name="teilnehmer">
    <option value="<?php echo $a; ?>">A</option>
    <option value="<?php echo $b; ?>">B</option>
    <option value="<?php echo $c; ?>">C</option>
    <option value="<?php echo $d; ?>">D</option>
    <option value="<?php echo $e; ?>">E</option>
    <option value="<?php echo $f; ?>">F</option>
    <option value="<?php echo $g; ?>">G</option>
    <option value="<?php echo $h; ?>">H</option>
    <option value="<?php echo $i; ?>">I</option>
 
</select>
<br /><br />
Tarif-Kategorie<br />
<select name="tarif">
    <option value="<?php echo $ve001; ?>">VE001</option>
    <option value="<?php echo $ve002; ?>">VE002</option>
    <option value="<?php echo $ve003; ?>">VE003</option>
    <option value="<?php echo $ve004; ?>">VE004</option>
    <option value="<?php echo $ve005; ?>">VE005</option>
    <option value="<?php echo $ve006; ?>">VE006</option>
    <option value="<?php echo $ve007; ?>">VE007</option>
    <option value="<?php echo $ve008; ?>">VE008</option>
    <option value="<?php echo $ve009; ?>">VE009</option>
    <option value=" <?php echo $ve0010; ?>">VE0010</option>
    
</select>

<br /><br />
Handyauswahl<br />
<select name="handy">

	<option id="id<?php echo $adr['id']; ?>" value="<?php echo $adr['alterpreis']?>" >Nokia 1100</option>
	<option value="<?php echo $handy2; ?>">Nokia 6300</option>
	<option value="<?php echo $handy3; ?>">Nokia N95</option>

    <option value="<?php echo $handy4; ?>">SE G502</option>
	<option value="<?php echo $handy5; ?>">SE w580i</option>
	<option value="<?php echo $handy6; ?>">SE w900i</option>    

    <option value="<?php echo $handy7; ?>">G100</option>
	<option value="<?php echo $handy8; ?>">G150</option>
	<option value="<?php echo $handy9; ?>">G200</option>

</select>



<br />
<br />

<input type="submit" value="Berechnen"/>
</form>

</div>
<div id="anbieterbox">

	<div id="link">
	<a target="_blank" href="http://www.nokia.de/produkte/mobiltelefone">Nokia</a> | 
    <a target="_blank" href="http://www.sonyericsson.com/cws/products/mobilephones?cc=de&lc=de">Sony Ericsson</a> | 
        <a target="_blank" href="http://www.samsung.de/de/Privatkunden/Mobil/Mobiltelefone/type.aspx">Samsung</a> | 
    <a target="_blank" href="http://www.lg.com/de/mobiltelefone/alle-lg-mobiltelefone/index.jsp">LG</a> | 
    <a target="_blank" href="http://www.motorola.com/Consumers/DE-DE/Consumer-Products-and-Services/Mobile-Phones">Motorola</a>
    </div>
    
</div>
</div>



</body>
</html>

<option id="id<?php echo $adr['id']; ?>" value="<?php echo $adr['alterpreis']?>" >Nokia 1100</option>

die zeile hatte ich jetzt ausgetauscht... doch er rechnet nicht mehr :(



calc.php

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<title>VVL</title>
</head>

<?php
	
	include 'var.php';

?>

<body>

<div id="wrapper">

<div id="box">
<h1> Vertragsverlängerung </h1>
<?php

/* Übergabe an das Formular */

$teilnehmer = $_POST["teilnehmer"];

$tarif = $_POST["tarif"];

$handy = $_POST["handy"];

$handyoption = $_POST["handyoption"];


/* Rechnung */
	
$provision = $teilnehmer + $tarif;

$gewinnabzug = $provision - $gp;

$rest = $gewinnabzug - $handy;

$zuzahlung = $rest * $mwst;

$null = 0.0;

$ho5 = $h1 + $zuzahlung;
$ho10 = $h2 + $zuzahlung;

/* Ausgabe Schleife Wenn -> Dann */
?>

<div id="echoboxen">

<?php

if ($zuzahlung > $null)

	{
		
		echo "Zuzahlung ohne Handyoption: <b> 1,- Euro </b>";
	}		
	
else 
	
	{
		echo "Zuzahlung ohne Handyoption: <b> $zuzahlung Euro </b>";
		


		
	}
	
	?>
</div>

<div id="echoboxen">

<?php

if($ho5 > $null)

	{
		
	echo "Zuzahlung mit 5 Euro Handyoption: <b> 1.00 Euro </b> ";

	}


else {
	echo "Zuzahlung mit 5 Euro Handyoption: <b> $ho5 Euro </b>";
	
}

?>

</div>


<div id="echoboxen">
<?php 



if($ho10 > $null)

	{
	echo "Zuzahlung mit 10 Euro Handyoption: <b>1.00 Euro </b>";
	}

else {
	echo "Zuzahlung mit 10 Euro Handyoption:<b> $ho10 Euro </b>";
}

	
?>
</div>

<p>- Beträge 
<br /><br />
<div>
<a href="index.php">Zurück</a>
</div>
</div>

<div id="anbieterbox">

	<div id="link">
	<a target="_blank" href="http://www.nokia.de/produkte/mobiltelefone">Nokia</a> | 
    <a target="_blank" href="http://www.sonyericsson.com/cws/products/mobilephones?cc=de&lc=de">Sony Ericsson</a> | 
        <a target="_blank" href="http://www.samsung.de/de/Privatkunden/Mobil/Mobiltelefone/type.aspx">Samsung</a> | 
    <a target="_blank" href="http://www.lg.com/de/mobiltelefone/alle-lg-mobiltelefone/index.jsp">LG</a> | 
    <a target="_blank" href="http://www.motorola.com/Consumers/DE-DE/Consumer-Products-and-Services/Mobile-Phones">Motorola</a>
    </div>
    
</div>

</div>
</div>

</body>
</html>

EDIT KA!!!

ich hab der index.php

jetzt noch oben ein

PHP:
	include 'connect.php';
	$adr = mysql_query;

eingefügt und unten die zeile schaut nu so aus.

PHP:
<option value="<?php echo $adr['alterpreis']?>">Nokia 1100</option>

rechnet trotzdem nicht :(


--- EDIT ---

er rechnet nu...

PHP:
<option value="<?php $adr['alterpreis'] ?>" id="id<?php echo $adr['id']; ?> "> <?php echo $adr['bezeichnung']; ?> </option>

aaber... nicht richtig...

bin mir jetzt nicht sicher ob er nur aus zeile 1 den preis nimmt oder aus beiden datenstätze... mh
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.189
Beiträge
2.582.077
Mitglieder
67.259
Neuestes Mitglied
SaschMasch1312
Oben