CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
09.04.2010, 21:17:25
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 43
Beiträge: 3
|
|
PR6 Link für Umbau auf PHP MYSQLi Abfrage
Hallo,
aus lauter Verzweifelung biete ich demjenigen der als erster die Problemlösung postet einen dauerhaften Link von einer Pagerank 6 Seite an (Ausnahme sind nach deutschem Recht verbotenen Seiten.).
Meine bisherige Query sieht wie folgend aus:
PHP-Code:
$db = @new mysqli('localhost', 'root', '', 'test'); if (mysqli_connect_errno()) { die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')'); } /* change character set to utf8 */ if (!mysqli_set_charset($db, "utf8")) { printf("Error loading character set utf8: %s\n", mysqli_error($db)); }
$sql = "SELECT * FROM daten as data LEFT JOIN produkt as prod ON prod.id=data.produkt_id LEFT JOIN anbieter as anb ON anb.id=prod.id_anbieter WHERE data.1_min <= 15 AND data.1_max >= 15 AND data.2_min <=10 AND data.2_max >=10 AND data.3_min <=5 AND data.3_max >=5 AND data.4_min <=6 AND data.4_max >=6 GROUP BY data.produkt_id ORDER BY data.preis ASC";
$stmt = $db->prepare($sql); $stmt = $db->query($sql);
if (!$stmt) { die ('Konnte den Folgenden Query nicht senden: '.$sql."<br />\nFehlermeldung: ".$db->error); } if (!$stmt->num_rows) { echo $sql; echo '<p class="info">Leider nichts gefunden.</p>'; } else {
while ($row = $stmt->fetch_assoc()) { echo '<b>'.$row['anbieter'].'</b> '.$row['adresse']."<br>\n"; echo ' '.$row['beschreibung']."<br>\n"; echo ' '.$row['zustand']."<br>\n"; echo ' '.$row['preis']."<br><br>\n"; } }
Der MYSQL Query soll nun mit den per GET übergebenen Werten gefüttert werden . Sprich es müssen nun für die Werte im MYSQL String "Prepared Statements" (Für die Zahlen 15,10,5,6 ) geschaffen werden. Und entsprechend die IF Anweisungen angepasst. Wer als erstes eine funktionsfähige MYSQLi Version postet bekommt den oben beschriebenen Link.
Danke
|
10.04.2010, 08:58:06
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
AW: PR6 Link für Umbau auf PHP MYSQLi Abfrage
Vielleicht fällt dir ja der Unterschied zu deinem bisherigen auf.
PHP-Code:
<?php $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); }
$city = "Amersfoort";
/* create a prepared statement */ if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
/* bind parameters for markers */ $stmt->bind_param("s", $city);
/* execute query */ $stmt->execute();
/* bind result variables */ $stmt->bind_result($district);
/* fetch value */ $stmt->fetch();
printf("%s is in district %s\n", $city, $district);
/* close statement */ $stmt->close(); }
/* close connection */ $mysqli->close(); ?>
Besonders auf bind_param(),execute(), fetch() und close() würde ich achten.
|
10.04.2010, 10:12:54
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: PR6 Link für Umbau auf PHP MYSQLi Abfrage
Hi
wie heissen die
Zitat:
mit den per GET übergebenen Werten
|
denn?
und warum müssen
Zitat:
die IF Anweisungen angepasst
|
werden?
ansonsten mal wieder ins dunkle geschossen...
mysqli_way?
PHP-Code:
$sql = "SELECT
*
FROM
daten as data
LEFT JOIN produkt as prod ON prod.id=data.produkt_id
LEFT JOIN anbieter as anb ON anb.id=prod.id_anbieter
WHERE
data.1_min <= ? AND data.1_max >= ? AND
data.2_min <=? AND data.2_max >=? AND
data.3_min <=? AND data.3_max >=? AND
data.4_min <=? AND data.4_max >=?
GROUP BY
data.produkt_id
ORDER BY
data.preis
ASC";
$stmt->bind_param("iiiiiiii",$_GET['w1'],$_GET['w1'],$_GET['w2'],$_GET['w2'],$_GET['w3'],$_GET['w3'],$_GET['w4'],$_GET['w4']);
PHPway
PHP-Code:
//ausgedachte GET WERTE w1,w2,w3,w4
If($_GET['w1']){
$where_data[] = "data.1_min <=". $_GET['w1'];
$where_data[] = "data.1_max >=". $_GET['w1'];
}
If($_GET['w2']){
$where_data[] = "data.2_min <=". $_GET['w2'];
$where_data[] = "data.2_max >=". $_GET['w2'];
}
If($_GET['w3']){
$where_data[] = "data.3_min <=". $_GET['w3'];
$where_data[] = "data.3_max >=". $_GET['w3'];
}
If($_GET['w4']){
$where_data[] = "data.4_min <=". $_GET['w4'];
$where_data[] = "data.4_max >=". $_GET['w4'];
}
if(is_array($where_data)){
$where_sql = " WHERE ".implode(' and ',$where_data);
}
$sql = "SELECT
*
FROM
daten as data
LEFT JOIN produkt as prod ON prod.id=data.produkt_id
LEFT JOIN anbieter as anb ON anb.id=prod.id_anbieter
".$where_sql."
GROUP BY
data.produkt_id
ORDER BY
data.preis
ASC";
Auf Überprüfung deiner GET werte bin ich bewusst nicht eingegangen.
Beachte bitte auch Urvater's Anmerkung.
mfg
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
10.04.2010, 10:38:18
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 43
Beiträge: 3
|
|
AW: PR6 Link für Umbau auf PHP MYSQLi Abfrage
Hi
ich habe jetzt testweise mal den MYSQLi way komplett eingebaut.
Zitat:
Fatal error: Call to a member function bind_param() on a non-object in test-mysqli.php on line 34
|
Also der neue Ausdruck.
Also habe ich alles auf Anfang. Ich habe nur ein ? eingesetzt und das GET durch einen festen Wert ersetzt.
PHP-Code:
$testwert=45;
$stmt->bind_param("i",$testwert);
$stmt = $db->prepare($sql);
$stmt = $db->query($sql);
Aber auch hier:
Zitat:
Fatal error: Call to a member function bind_param() on a non-object in test-mysqli.php on line 34
|
Komisch.
|
10.04.2010, 10:41:42
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 43
Beiträge: 3
|
|
AW: PR6 Link für Umbau auf PHP MYSQLi Abfrage
Zitat:
Hi
wie heissen die
Zitat:
mit den per GET übergebenen Werten
denn?
|
Du hast in deinem Codebeispiel bereits die richtigen GET Variablen genommen.
Zitat:
und warum müssen
Zitat:
die IF Anweisungen angepasst
werden?
|
Ich hatte das in den Dokus so verstanden, leider sind hier ja nur INSERT und keine SELECT Anfragen definiert.
|
10.04.2010, 10:48:42
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: PR6 Link für Umbau auf PHP MYSQLi Abfrage
Hi
ich bin davon ausgegangen das du alle Beiträge liest ;)
Wie in Urvater's Beitrag schon dargelegt kommt bind_param
nach prepare.
Schau dir das bitte genauer an und versuche meinen Ansatz entsprechend
einzuarbeiten.
mfg
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
12.04.2010, 01:20:10
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: PR6 Link für Umbau auf PHP MYSQLi Abfrage
Hi
hat nun jemand den PR6 gewonnen? ;)
Könnt den gut für mein Facebookapp gebrauchen *hust
mfg
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 14:17:37 Uhr.
|